我们有一个 Excel 文件,其中有一列Percentage. 此列包含数字,因此能够从大到小和反向排序。唯一缺少的是它没有在数字后面显示百分比符号。
我们拥有的是这样的:
如果它可以显示以下内容并且仍然能够从小到大排序,那就太好了:
114,87 %
50 %
81 %
91 %
Run Code Online (Sandbox Code Playgroud)
无论我在格式化选项中尝试什么Custom,我总是以尾随零或更改的值结束。
使用android.icu.text.NumberFormat类:
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale("en", "AU"));
numberFormat.isGroupingUsed = true
String number = numberFormat.format(123456)
Run Code Online (Sandbox Code Playgroud)
将产生123,456,但根据维基百科,澳大利亚使用一个点.作为小数点分隔符。为什么 NumberFormat 会这样?
我正在努力在 Java 中格式化数字。
我的输入格式如下(我无法更改):2.000,15 ,输出应如下所示:2000.15
如果逗号后只有 0,则输出应如下所示:2000
输入以字符串形式给出。
我已经尝试使用 aDecimalFormat但这只会导致IllegalArgumentException
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getInstance(Locale.ENGLISH);
decimalFormat.setMinimumFractionDigits(0);
decimalFormat.setMaximumFractionDigits(2);
decimalFormat.setGroupingUsed(false);
return decimalFormat.format(Double.parseDouble(characteristicValue));
Run Code Online (Sandbox Code Playgroud) 我喜欢在正数之前显示一个加号。例子
2.to_s
# returns +2
Run Code Online (Sandbox Code Playgroud)
和
-2.to_s
# returns -2
Run Code Online (Sandbox Code Playgroud) 作为输入,我得到一个数字,例如1000000,需要将其转换为String如下所示:1.000.000
另外,数字可以是750000或任何其他,必须转换为750.000以此类推(数字可以小于 1 万,也可以大于 1000 万)
我怎样才能做到这一点?
有人可以帮我解决这个问题吗?数字应该是可变的而不是常数.输出应该是:
Timestamping In 6 Digit 8 5 6 3 0 1 Average In 6 Digit 9 8 7 6 5 2
class Timestamp1 extends Average1
{
public static void main (String args[]) {
int i = 103658;
int j = 10;
int k = i % j;
System.out.println(" Timestamping In 6 Digit " );
System.out.println(" " + k);
int o = 10365;
int p = 10;
int q = o % p;
System.out.println(" " + q);
int l = 1036; …Run Code Online (Sandbox Code Playgroud) 我正在尝试格式化数字DecimalFormat.但我希望它格式化一个数字,就像
input: 1234. --> should be formatted to: 1,234.
Run Code Online (Sandbox Code Playgroud)
但我得到1,234.0或1,234.00取决于我的十进制格式规则我需要做什么才能完成这项工作?
我从用户那里获得输入并逐行读取.然后我使用split方法来标记输入.像这样:
Scanner input=new Scanner(System.in);
String input1=input.nextLine();
String[] tokens=input1.split(" ");
method1(Double.parseDouble(tokens[0]),Double.parseDouble(tokens[1]));
Run Code Online (Sandbox Code Playgroud)
这是method1:
public static void method1 (double a, double b) {
System.out.println(a);
System.out.println(b);
}
Run Code Online (Sandbox Code Playgroud)
当我声明3.5和5.3输出时;
3.5
5.3
Run Code Online (Sandbox Code Playgroud)
这里没有问题,但如果我声明3,5和5,3我的代码在下面给出错误;
Exception in thread "main" java.lang.NumberFormatException: For input string: "3,5"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
执行此代码时,我总是得到true结果:
public class TestDeclare {
public static void main(String[] args) {
double var = 34; // any other litteral is valid
System.out.printf("%b ", var);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我会得到true而不是false?是true默认值Number吗?
我有一个字符串"eur0.99",它可以是"eur123.0"或"som0.10",或"0.99usd",或"123.34any"或类似的东西.如何在价格和字母之间插入一个空格而不会产生一个巨大的令人讨厌的杂乱代码?