java不需要返回数据时_从Java方法返回时,BigDecimal不保持实际值
我正在用
Java制作货币转换应用程序.其他一些很棒的StackOverflowians给了我建议读取BigDecimal,目的是替换double来解决任何精度问题.
我有两个方法系统;它从起始货币转换为美元,然后将美元价值转换为目标货币.
请注意,我的转化率存储如下:
// Conversion Rates - START (as of October 30, 2018 @ 3:19 AM)
// Rates obtained from exchange-rates.org
//Convert to United States Dollar rates
private final BigDecimal CAD_TO_USD = new BigDecimal(0.76135);
private final BigDecimal EUR_TO_USD = new BigDecimal(1.1345);
private final BigDecimal YEN_TO_USD = new BigDecimal(0.008853);
// Conversion Rates - END
在我用他们各自的BigDecimals取代我的双打之后 – 我决定测试它并看看它是如何运作的.
我的测试人员类运行以下方法来启动转换过程.
public BigDecimal convert()
{
BigDecimal value;
value = convertToUSD(); //Converts the current currency into USD
value = convertFromUSD(value); //Converts the previous USD currency value into the destination currency
return value;
}
当我输入我的样本变量(将2.78 YEN转换为加元)时,我逐步完成了整个过程,发现一切都在运行,直到我返回一个值.
从前面提到的方法,运行convertToUSD()并编码如下
private BigDecimal convertToUSD()
{
switch (fromCurrency)
{
case "USD":
return fromQuantity.multiply(new BigDecimal(1));
case "CAD":
return fromQuantity.multiply(CAD_TO_USD);
case "EUR":
return fromQuantity.multiply(EUR_TO_USD);
case "YEN":
return fromQuantity.multiply(YEN_TO_USD);
}
return new BigDecimal(0);
}
ALl值正确传递,它逐步向下到正确的情况(“YEN”),变量窗格显示“fromQuantity”BigDecimal的intCompact值为278(这对我来说很有意义)
一旦断点返回到“转换”方法,它就会变得混乱.而不是返回2.78 * 0.008853 = 0.0246,它返回-9223372036854775808.
这会导致所有其他计算产生和错误.
我是使用BigDecimal的新手,所以我可能会犯一个完全明显的错误;但我很高兴学习,所以我向你们寻求建议:)
任何帮助表示赞赏.
java不需要返回数据时_从Java方法返回时,BigDecimal不保持实际值相关推荐
- java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...
通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...
- java有string这个类型吗_关于java的String类型
String类型的不可变 众所周知,String类型是不可变的,一旦String对象被创建好了则这个字符串中的序列就不可改变. 为什么String类型是不可变? 根据阅读源码可知,String类是一个 ...
- ajax返回的数据有问题,ajax请求成功返回数据,转成数组后,for遍历取不到值的有关问题...
当前位置:我的异常网» Ajax » ajax请求成功返回数据,转成数组后,for遍历取不到 ajax请求成功返回数据,转成数组后,for遍历取不到值的有关问题 www.myexceptions.ne ...
- java制作一个简单的画板_【Java】Thymeleaf一个简单示例
Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...
- java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...
@ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...
- java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程
作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- java 协程线程的区别_为什么 Java 坚持多线程不选择协程?
谢邀. 先说结论:协程是非常值得学习的概念,它是多任务编程的未来.但是Java全力推进这个事情的动力并不大. 先返回到问题的本源.当我们希望引入协程,我们想解决什么问题.我想不外乎下面几点:节省资源, ...
- Java中如何引用文档对象模型_在JAVA中使用文档对象模型DOM经验小结
文档对象模型 (DOM) 是一个文档标准,对于完备的文档和复杂的应用程序,DOM 提供了大量灵活性.DOM标准是标准的.它很强壮且完整,并且有许多实现.这是许多大型安装的决定因素--特别是对产品应用程 ...
- java每个阶段的学习时间_每个Java学习者都会犯的10个最常见的1个错误
java每个阶段的学习时间 据说:"您的朋友会吞下您的错误,您的敌人会将它们呈现在盘子上". 我绝对不是你的敌人,但我想向您介绍一些针对每个Java初学者的错误,我将在此博客&qu ...
最新文章
- 十一、FCFS(先来先服务)、SJF(短作业优先)、HRRN(高响应比优先)
- LeetCode:63. 不同路径 II
- SQL Challenge ——快速找到1-100之间缺失的数
- Android:日常学习笔记(8)———探究UI开发(5)
- Material Design入门(二)
- DevExpress GridControl Gridview RepositoryItemCheckEdit复选框及获取选择行数据
- 21-win10下ElasticSearch.6.1.0安装SQL插件
- fastslam matlab,fastslam 快速定位和构图的源码,一个简单的例子,3D建模,可以用作学习智能机器人自主移动 matlab 272万源代码下载- www.pudn.com...
- 关于vmkd加速内核调试
- 为什么私有云的定位应该是PaaS,而不是IaaS?
- 机器学习中对不均衡数据的处理方法
- php在线考试系统详细步骤
- Select, Supplement and Focus for RGB-D Saliency Detection CVPR2020 卢湖川团队
- python隐藏部分代码_python源码隐藏
- Win11更新提示安装错误0x80248007怎么办?0x80248007下载错误解决方法汇总
- java比较两个对象_java判断两个对象是否相等的方法
- 黑盒测试方法——边界值分析法
- Nagios配合飞信发短信
- 百度nlp实习生转岗(猝)
- back_inserter的使用
热门文章
- beautifulsoup网页爬虫解析_爬虫第三天——初识Xpath
- Python实现一个数组除以一个数
- OpenCV学习笔记(十七):图像修补:inpaint()
- OpenCV绘图和注释
- NFS服务器原理、搭建、配置
- 网站渗透测试原理及详细过程
- RefFieldMethodDetails——查看类的域和方法
- freedos能够编译c语言嘛,Freedos freedos核心源代码包含汇编和C语言代码 - 下载 - 搜珍网...
- android aidl工具,【Android】AIDL介绍和实例讲解
- elxel表格纸张尺寸_一本书的诞生:纸张知识