- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
java.lang.Math 类有 ceil()、floor()、round() 方法,但没有 trunc() 方法。
同时,我在实践中看到 .intValue() 方法(实际上执行 (int) 转换)完全符合我对 trunc() 的标准含义的期望。
但是我找不到任何具体文档来确认 intValue() 完全等同于 trunc(),从很多角度来看这都很奇怪,例如:
描述“以 int 形式返回此 Double 的值(通过转换为 int 类型)” https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html做不要说它“返回小数的整数部分”数字”或类似的内容。
文章 What is .intValue() in Java?没有说任何它的行为类似于 trunc()。
我对“Java trunc method”或类似方法的所有搜索都没有给出好像我是唯一一个搜索 trunc() 的人并且好像我不知道一些大家都知道的非常常见的事情。
我能以某种方式确认我可以安全地使用 intValue() 来使用“trunc”模式四舍五入小数吗?
最佳答案
所以问题就变成了:将 double 转换为 int 是否等于截断?
Java Language Specification或许会有答案。我引用一下:
specific conversions on primitive types are called the narrowing primitive conversions:
[...]
- float to byte, short, char, int, or long
- double to byte, short, char, int, long, or float
A narrowing primitive conversion may lose information about the overall magnitude of a numeric value and may also lose precision and range.
[...]
A narrowing conversion of a floating-point number to an integral type T takes two steps:
- In the first step, the floating-point number is converted either to [...] an int, if T is byte, short, char, or int, as follows:
- If the floating-point number is NaN (§4.2.3), the result of the first step of the conversion is an int or long 0.
- Otherwise, if the floating-point number is not an infinity, the floating-point value is rounded to an integer value V, rounding toward zero using IEEE 754 round-toward-zero mode (§4.2.3). Then there are two cases:
- If T is long, and this integer value can be represented as a long, then the result of the first step is the long value V.
- Otherwise, if this integer value can be represented as an int, then the result of the first step is the int value V.
IEEE 754-1985 中对此进行了描述.
关于Java trunc() 等效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58220779/
使用方法 TRUNC SQL Server 2012 中的函数,因为我收到错误: 'TRUNC' is not a recognized built-in function name.' 当我执行语句
看下面的代码,为什么Trunc函数的结果不一样? procedure TForm1.Button1Click(Sender: TObject); var D: Double; E: Exten
我想在javascript中 chop 一个数字,即去掉小数部分: chop (2.6)==2 trunc (-2.6) == -2 经过大量基准测试后,我的答案是: function trunc
下面的代码在 Chrome 中运行良好,但在 IE 浏览器中我看到以下控制台错误: object does not support property or method 'trunc' 代码: var
java.lang.Math 类有 ceil()、floor()、round() 方法,但没有 trunc() 方法。 同时,我在实践中看到 .intValue() 方法(实际上执行 (int) 转换
tl;dr: double b=a-(size_t)(a) 比 double b=a-trunc(a) 快 我正在为图像实现旋转功能,我注意到 trunc 功能似乎非常慢。 图像的循环代码,像素的实际
oracle trunc()函数是最常用的函数之一,下面就为您介绍oracle trunc()函数的用法,供您参考,希望可以让您对oracle trunc()函数有更深的认识。 1.TRUNC(f
从 1.3.172 版本开始,有一个 TRUNC 函数,它模仿了 Oracle 的 TRUNC(TIMESTAMP)。实现过程中存在一个小问题。查询: select TRUNC(TIMESTAMP '
我有两个不同大小的变量“a”和“b”,见下文。我有几个问题: (1) 如何将“a”的值复制到“b”? (即扩展操作) (2) 如何将“b”的值复制到“a”? (即截断操作) 谢谢。 a = BitVe
select trunc('11.01') from dual 输出:11 jasper 报告中的 BigDecimal 数据类型是什么。是否有任何解决方法可以将其作为字符串。 最佳答案 Oracle
我需要限定来自 Oracle 数据库的查询以获取基于特定日期范围的报告 第一个查询 5pm-7am(昨天下午 5 点到今天早上 7 点之间) 第二个查询 早上 7 点到下午 5 点((昨天下午 5 点
我尝试在 Blender 2.49b Python 中使用 math.trunc 但我收到此错误 AttributeError: 'module' object has no attribute 't
我正在尝试使用以下方法截断 PostgreSQL 中的数字: SELECT trunc(31.71429,15); 我有这个输出: 31.714290000000000 但是在 Oracle 中我有这
我有旧的pascal代码 var i : longint; m : double; begin ..... i := trunc(m); 我必须将它转换为 C++ 代码。 这里很明显的
本文给大家分享的oracle trunc 函数处理日期格式的相关知识,非常具有参考价值,具体请看下文说明吧。 复制代码代码如下: select to_char(sys
我来自 SQL Server 世界,有人要求我弄清楚一段(古老的)Oracle 脚本是怎么回事。 CAVEAT: I don't have access to the Oracle server, I
在通过 Java 库翻译 Google Translate API 中的短语时,我突然得到了同样奇怪的标记。英语 → 瑞典语的示例包括: Vector graphics → vektor~~POS=T
为什么 从双中选择 trunc(to_date('23/06/2017','DD/MM/YYYY'), 'DAY'); 返回 2017年6月19日 不是预期的 2017年6月23日? 我们使用的是 O
我有一个包含每小时数据和值(value)的简单表格。我想计算每个月每日最大值的平均值。 该查询起初看起来很简单: WITH daily_max AS ( SELECT TRUNC(the_date
trunc()有什么区别和 as.integer() ? 为什么是 as.integer快点?谁能解释一下幕后发生了什么? 为什么trunc()返回类double而不是 integer ? x 43
我是一名优秀的程序员,十分优秀!