当前位置:  开发笔记 > 编程语言 > 正文

将Double转换为Int时的不同答案 - Java vs .Net

如何解决《将Double转换为Int时的不同答案-Javavs.Net》经验,为你挑选了2个好方法。

在C#中,如果我想将double(1.71472)转换为int,那么我得到答案2.如果我使用intValue()方法在Java中执行此操作,我得到1作为答案.

Java会对转换进行舍入吗?

为什么Java API文档有关于其类的信息很少,即

以int形式返回指定数字的值.这可能涉及舍入或截断.

有关舍入的更多信息会有所帮助!



1> Jon Skeet..:

当你从浮点缩小到整数类型时,Java会向零舍入 - 当你使用转换转换时,C#也是如此.这Convert.ToInt32是轮次:

double d = 1.71472;
int x = (int) d; // x = 1
int y = Convert.ToInt32(d); // y = 2

详细信息可以在Java语言规范中找到.请注意,虽然Number为子类打开了叶子选项中引用的文档,但是关于具体的拳击类型的文档,例如Double,关于实现是明确的:

以int形式返回此Double的值(通过强制转换为int类型).

使用时BigDecimal,您可以指定八种不同的舍入策略之一.



2> erickson..:

当从浮点缩小到整数类型时,Java向零舍入.

有关Java语言规范中的一般规则的更多文档.请注意,虽然Number为子类打开了叶子选项中的文档,但有关具体装箱类型的文档更明确:

以int形式返回此Double的值(通过强制转换为int类型).

使用BigDecimal时,您可以指定八种不同的舍入策略之一.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有