我正在用

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不保持实际值相关推荐

  1. java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...

    通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...

  2. java有string这个类型吗_关于java的String类型

    String类型的不可变 众所周知,String类型是不可变的,一旦String对象被创建好了则这个字符串中的序列就不可改变. 为什么String类型是不可变? 根据阅读源码可知,String类是一个 ...

  3. ajax返回的数据有问题,ajax请求成功返回数据,转成数组后,for遍历取不到值的有关问题...

    当前位置:我的异常网» Ajax » ajax请求成功返回数据,转成数组后,for遍历取不到 ajax请求成功返回数据,转成数组后,for遍历取不到值的有关问题 www.myexceptions.ne ...

  4. java制作一个简单的画板_【Java】Thymeleaf一个简单示例

    Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...

  5. java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...

    @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...

  6. java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程

    作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...

  7. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  8. java 协程线程的区别_为什么 Java 坚持多线程不选择协程?

    谢邀. 先说结论:协程是非常值得学习的概念,它是多任务编程的未来.但是Java全力推进这个事情的动力并不大. 先返回到问题的本源.当我们希望引入协程,我们想解决什么问题.我想不外乎下面几点:节省资源, ...

  9. Java中如何引用文档对象模型_在JAVA中使用文档对象模型DOM经验小结

    文档对象模型 (DOM) 是一个文档标准,对于完备的文档和复杂的应用程序,DOM 提供了大量灵活性.DOM标准是标准的.它很强壮且完整,并且有许多实现.这是许多大型安装的决定因素--特别是对产品应用程 ...

  10. java每个阶段的学习时间_每个Java学习者都会犯的10个最常见的1个错误

    java每个阶段的学习时间 据说:"您的朋友会吞下您的错误,您的敌人会将它们呈现在盘子上". 我绝对不是你的敌人,但我想向您介绍一些针对每个Java初学者的错误,我将在此博客&qu ...

最新文章

  1. 十一、FCFS(先来先服务)、SJF(短作业优先)、HRRN(高响应比优先)
  2. LeetCode:63. 不同路径 II
  3. SQL Challenge ——快速找到1-100之间缺失的数
  4. Android:日常学习笔记(8)———探究UI开发(5)
  5. Material Design入门(二)
  6. DevExpress GridControl Gridview RepositoryItemCheckEdit复选框及获取选择行数据
  7. 21-win10下ElasticSearch.6.1.0安装SQL插件
  8. fastslam matlab,fastslam 快速定位和构图的源码,一个简单的例子,3D建模,可以用作学习智能机器人自主移动 matlab 272万源代码下载- www.pudn.com...
  9. 关于vmkd加速内核调试
  10. 为什么私有云的定位应该是PaaS,而不是IaaS?
  11. 机器学习中对不均衡数据的处理方法
  12. php在线考试系统详细步骤
  13. Select, Supplement and Focus for RGB-D Saliency Detection CVPR2020 卢湖川团队
  14. python隐藏部分代码_python源码隐藏
  15. Win11更新提示安装错误0x80248007怎么办?0x80248007下载错误解决方法汇总
  16. java比较两个对象_java判断两个对象是否相等的方法
  17. 黑盒测试方法——边界值分析法
  18. Nagios配合飞信发短信
  19. 百度nlp实习生转岗(猝)
  20. back_inserter的使用

热门文章

  1. beautifulsoup网页爬虫解析_爬虫第三天——初识Xpath
  2. Python实现一个数组除以一个数
  3. OpenCV学习笔记(十七):图像修补:inpaint()
  4. OpenCV绘图和注释
  5. NFS服务器原理、搭建、配置
  6. 网站渗透测试原理及详细过程
  7. RefFieldMethodDetails——查看类的域和方法
  8. freedos能够编译c语言嘛,Freedos freedos核心源代码包含汇编和C语言代码 - 下载 - 搜珍网...
  9. android aidl工具,【Android】AIDL介绍和实例讲解
  10. elxel表格纸张尺寸_一本书的诞生:纸张知识