检查整数是否太大

2024-01-09

我正在开发一个交换系统,用户正在设置交换的价格和金额。

我想确保交换不大于整数最大值,但我遇到了问题。

当兑换金额设置为9或更多时,即使我有检查以确保该数字不大于最大值,但它不起作用。我做了一些调试,当将金额设置为 9 而价格为 2,147,483,646(比最大数字少 1)时,它打印出以下内容:

2,147,483,630 - 9

这是我的调试代码,我应该添加什么以确保不会发生这种情况?

public void setPrimaryAmount(int primaryAmount) {
        int price = primaryAmount * this.price;
        System.out.println(Misc.format(this.price * primaryAmount) + " - " + primaryAmount);
        if (price > Integer.MAX_VALUE ||
                price == Integer.MAX_VALUE ||
                price >= Integer.MAX_VALUE ||
                price < 0 || price <= 0 ||
                price++ == Integer.MAX_VALUE) {
            System.out.println("Attempted to set a bad amount.");
            return;
        }
        this.primaryAmount = primaryAmount;
    }

打印出“尝试设置错误金额”,直到您输入的金额 >= 9。


您不能将值存储在 int 中,并且then检查它对于 int 来说是否太大。将其存储在 long 中。

long price = (long)primaryAmount * (long)this.price;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查整数是否太大 的相关文章

  • 如何在java中压缩/解压tar.gz文件

    谁能告诉我在java中压缩和解压缩tar gzip文件的正确方法我一直在搜索 但我能找到的最多的是zip或gzip 单独 我写了一个包装器公共压缩 http commons apache org compress called jarchi
  • Java - 从配置文件加密/解密用户名和密码

    我们正忙于为客户开发 Java Web 服务 有两种可能的选择 将加密的用户名 密码存储在Web服务客户端上 从配置中读取 文件在客户端 解密并发送 将加密的用户名 密码存储在 Web 服务器上 从配置中读取 Web 服务器上的文件 解密并
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • 以点作为分隔符分割字符串

    我想知道我是否要在一个字符串上分割字符串 正确的方式 我的代码是 String fn filename split return fn 0 我只需要字符串的第一部分 这就是我返回第一项的原因 我问这个是因为我在 API 中注意到 意味着任何
  • Maven 目标的默认阶段?

    据我了解 在 Maven 中 插件目标可以附加到生命周期阶段 如果没有定义 默认阶段是什么 根据我的经验 这取决于插件的目标 例如 组装 单个 http maven apache org plugins maven assembly plu
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • 动画图像视图

    目前我正在开发一款游戏 这是我的游戏的详细信息 用户应选择正确的图像对象 我希望图像从左到右加速 当他们到达终点时 他们应该再次出现在活动中 这是我正在处理的屏幕截图 我有 5 个图像视图 它们应该会加速 您有此类动画的示例代码吗 非常感谢
  • 更改 JTextPane 的大小

    我是Java新手 刚刚在StackOverflow中找到了这段代码 ResizeTextArea https stackoverflow com questions 9370561 enabling scroll bars when jte
  • JavaFx 中装饰且不可移动的舞台

    我想在 JavaFx 中创建一个装饰舞台 它也将不可移动 我正在从另一个控制器类创建这个阶段 我能够创造和展示舞台 但它是自由移动的 我怎样才能创建这个 非常感谢帮助和建议 我把打开新关卡的方法贴出来 private void addRec
  • 如何将txt文件添加到你的android项目中? [复制]

    这个问题在这里已经有答案了 我的Android studio版本是1 5 1 显然这个 never 版本没有 txt 文件的 asset 文件夹 您打算如何将这些文件包含到您的项目中 以及如何进一步使用您内部的应用程序 谢谢你的建议 Pro
  • 如何获取 Android 中临时文件的文件大小?

    如果我使用 openFileOutput 创建并写入临时文件 写入完成后如何获取文件大小 我希望这可以帮助你 File file new File selectedPath int file size Integer parseInt St
  • Kerberos 缓存票证

    我使用的是 Windows 7 64 位 我创建了一个简单的应用程序来对实现 PrivilegedAction 的类的 run 方法中的文件进行计数 以下是我的 jaas conf 文件 CountFiles com sun securit
  • XSLT:我们可以使用abs值吗?

    我想知道在 XSLT 中我们是否可以使用 math abs 我在某处看到过这个 但它不起作用 我有类似的东西
  • 在多模块项目中访问绑定适配器

    我有一个多模块项目 其中应用程序模块包含我的绑定适配器 而我的功能模块取决于我的应用程序模块 因为它是动态功能模块 应用程序 包含绑定适配器 gt 动态功能模块 存在布局的地方 我在所有模块中启用了数据绑定和 kapt 我无法成功构建应用程
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • java中wav文件转换为字节数组

    我的项目是 阿塞拜疆语音的语音识别 我必须编写一个程序来转换wav文件到字节数组 如何将音频文件转换为byte 基本上如第一个答案中的片段所描述 但不是BufferedInputStream use AudioSystem getAudio
  • 设计抽象类时是否应该考虑序列化问题?

    一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID 由于该类是抽象类 因此该类的实例永远不会存在 因此它们永远不会被序列化 只有派生类才会被序列化 所以我的问题是放置一个安全 SuppressWarnings serial
  • SWT - 与操作系统无关的获取等宽字体的方法

    SWT 有没有一种方法可以简单地获得跨各种操作系统的等宽字体 例如 这适用于 Linux 但不适用于 Windows Font mono new Font parent getDisplay Mono 10 SWT NONE 或者我是否需要
  • java数据结构模拟数据树

    我需要帮助定义使用什么方法 我有一个 SOAP 响应 给我一个 xml 文件 我需要在屏幕上显示 3 个相关列表 当您在第一个列表中选择一个项目时 相应的选择将出现在第二个列表中 依此类推 我只对从 xml 流中提取数据后如何有效地组织数据

随机推荐

  • Angular Material 2 中的 md-table

    我正在与角材料表 https material angular io components table overview在Html代码中 有
  • 将项目升级到 MVC 5

    我一直在寻找一种解决方案来升级当前的 MVC 4 应用程序 我必须使用新的 MVC 5 二进制文件 我在任何地方都找不到解决方案 有人有主意吗 Visual Studio 2013 只需允许 Nuget 包管理器运行更新即可自动升级项目 S
  • 调用方法一次以在 Django Rest Framework 序列化器中设置多个字段

    如何使用 Django Rest Framework 序列化程序调用同一方法一次来设置多个字段 这就是我现在所做的 但这显然调用了该方法两次 如何限制它只能被调用一次 class MyModel models Model def GetTw
  • 我应该实现 onRetainNonConfigurationInstance 吗?

    我刚刚读到有关维护 Android 应用程序状态的内容 并偶然发现了 onRetainNonConfigurationInstance 但在阅读时文档 http developer android com reference android
  • Flutter:如何将 URI 转换为文件?

    我想将路径 content media external images media 138501 转换为文件并在图像中设置 Code File imageFile File content media external images med
  • Lucene索引中“-”字符的问题

    我在使用 Lucene 索引时遇到问题 该索引已索引包含 字符的单词 它适用于某些包含 的单词 但不适用于所有单词 我找不到它不起作用的原因 我正在搜索的字段经过分析并包含带有和不带有 字符的单词版本 我正在使用分析器 org apache
  • Graphviz dot - HTML 表格中的斜体文本不是斜体

    我在用着dot版本2 26 3 下列 dot内容 digraph html results shape none margin 0 label lt table border 0 cellspacing 0 cellpadding 4 tr
  • 从 CGPoints 数组中获取最大值和最小值

    我们有一组 CGPoints let points 1234 0 1053 0 1241 0 1111 0 1152 0 1043 0 我想做的是获取数组中 x 值最高的 CGPoint 和 y 值最高的 CGPoint 我将使用这些点来创
  • 您不是该客户端的沙箱用户。错误代码igniter-Instagram api

    In my codeigniter我正在尝试使用的项目Instagram API用于登录 This https github com ianckc CodeIgniter Instagram Library是我正在使用的库 但是当进入登录页
  • Android Studio 中 make 和 build 的区别

    Android Studio Build 菜单的选项包括 Make Project Rebuild Project 我应该什么时候使用它们 大多数时候你应该使用制作项目 有时 在添加库并对项目进行重大更改后 您应该使用重建项目 如果你看一下
  • 当我将项目从一个列表框传输到另一个列表框时,如何防止页面回发

    我的应用程序中有两个列表框 单击按钮后我将项目从一个列表框推送到另一个列表框 代码工作正常 但它会导致回发 当我将项目从一个列表框移动到另一个时 整个页面正在再次加载 如何我可以阻止这一切 这将是我的 aspx 页面上的代码 div cla
  • UISearchBar 文本颜色

    浏览文档 我找不到任何可以更改 UISearchBar 颜色的内容 有人知道如何更改吗 没有任何 textColor 属性 Thx 适用于 iOS 7 及更高版本 UITextField appearanceWhenContainedIn
  • SIMD 将 12 位字段解包为 16 位

    我需要从每个 24 位输入中解压缩两个 16 位值 3 字节 gt 4 字节 我已经以幼稚的方式做到了 但我对表现不满意 例如 InBuffer 是 m128i value1 uint16 t InBuffer 0 11 bit range
  • 如何让 ListView 部分标题固定下来

    我的按钮显示在屏幕顶部 使用反应本机可滚动选项卡视图 在按钮下面 我有ListView上面有节标题 当我滚动时 有没有办法让标题粘在选项卡视图的底部边缘 我很难得到ListView的节标题粘在 Facebook TabBar 的底部 默认情
  • CSS 旋转 IE7 和 8

    我还要问另一个问题 所以 CSS Rotate 在 ie9 中可以工作 但在以前的版本中让旋转工作将是我的死 filter progid DXImageTransform Microsoft BasicImage rotation 1 这行
  • 检测视频文件何时真正写入?

    cwac camera 库具有在保存照片之前调用的事件挂钩 Override public void saveImage PictureTransaction xact byte image 我是否只是忽略了这一点 或者是否没有接收器告诉我
  • 为什么 GetWindowThreadProcessId 有时返回 0?

    我使用远程调用在目标地址空间中注入 NET SpyLib 我需要向该窗口的线程发送一条消息 该线程通过以下方式创建了该远程进程GetWindowThreadProcessId 我正在 Windows 7 上工作 不幸的是它大多数时候返回 0
  • Vue-cli 版本 3 BETA webpack 配置

    我正在尝试学习和测试即将推出的 vuejs vue cli beta 3 0 版本 这将是朝着最简单的 webpack 配置迈出的一大步 与此同时 例子很少 作为测试 我尝试从 vue cli v2 webpack dev conf js
  • iPhone Safari 上的 HTML5 - localStorage 存储的数据并不总是持久。为什么?

    我使用 HTML5 的 localStorage 编写了一个简单的 iPhone Web 应用程序 在 2G 设备上的测试表明 尽管会记住打开的 Safari 窗口 但在 Safari 进程被终止后 使用 localStorage 存储的数
  • 检查整数是否太大

    我正在开发一个交换系统 用户正在设置交换的价格和金额 我想确保交换不大于整数最大值 但我遇到了问题 当兑换金额设置为9或更多时 即使我有检查以确保该数字不大于最大值 但它不起作用 我做了一些调试 当将金额设置为 9 而价格为 2 147 4