Joh*_*hat 7 c java printf formatter
我尝试使用Formatter.format,但这似乎将尾数留在带有0尾数的数字上,而C版本却没有.在Java中是否有相当于C的%g格式说明符,如果没有,有没有办法伪造它?出于兼容性原因,我的目的是保持尾数与C完全相同.
foo.c的
#include <stdio.h>
int main (int argc, char const *argv[])
{
printf("%g\n", 1.0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Main.java
class Main {
public static void main(String[] args) {
System.out.printf("%g\n", 1.0);
}
}
Run Code Online (Sandbox Code Playgroud)
安慰:
$ javac Main.java && java Main
1.00000
$ gcc foo.c && ./a.out
1
Run Code Online (Sandbox Code Playgroud)
类似地,使用1.2作为输入,Java版本中的尾数较长
$ javac Main.java && java Main
1.20000
$ gcc foo.c && ./a.out
1.2
Run Code Online (Sandbox Code Playgroud)
您是否尝试过java.text.DecimalFormat类?
System.out.println(new DecimalFormat().format(1.0));
Run Code Online (Sandbox Code Playgroud)
输出:
1
Run Code Online (Sandbox Code Playgroud)
然而:
System.out.println(new DecimalFormat().format(1.2));
Run Code Online (Sandbox Code Playgroud)
输出:
1.2
Run Code Online (Sandbox Code Playgroud)