今天用POI在做Excel报表时,遇到一个问题,那就是将数据写入Excel后,Excel中的公式执行完显示的结果为科学计数法。调试Excel设置,没调试成功,最后只好用代码来格式化公式的值。在格式化的工程中发现String类型的值赋值有问题。具体代码如下:
public class ExcelUtil {
public static void main(String[] args) throws Exception {
System.out.println(new ExcelUtil().getChangeValue(-1.862645149230957E-9));
}
/**
*将传入的数据进行格式化(千分位表示,保留两位小数)。
* 第一次格式化后如果是-0.00 ,则进行递归调用
*/
public String getChangeValue(Object obj){
Object obj1=obj;
DecimalFormat format=new DecimalFormat("#,##0.00");
String str= format.format(obj1);
System.out.println("转换后的值为:"+str);
if(str.equals("-0.00")){
System.out.println("+++++++++");
getChangeValue(0);
}else {
return str;
}
System.out.println("----------");
return str;
}
}
执行结果如下:
转换后的值为:-0.00
+++++++++
转换后的值为:0.00
----------
-0.00
问题:
最后打印出来的值应该是0.00 ,怎么会是 -0.00 呢???
最后只能修改代码为:
String str="";
public String getChangeValue(Object obj){
Object obj1=obj;
DecimalFormat format=new DecimalFormat("#,##0.00");
str= format.format(obj1);
System.out.println("转换后的值为:"+str);
if(str.equals("-0.00")){
System.out.println("+++++++++");
getChangeValue(0);
}else {
return str;
}
System.out.println("----------");
return str;
}
<!--EndFragment-->
结果就正常了。
待解。。。。。。。。。。。
相关推荐
java代码-使用java增强for循环 string数组赋值的源代码 ——学习参考资料:仅用于个人学习使用!
在Java编程语言中,String类型变量的赋值问题是一个重要的概念,主要涉及到对象引用和不可变性。这里我们将深入探讨这两个关键点。 首先,Java中的String类是不可变的,这意味着一旦创建了一个String对象,就不能...
Java中的String类型是一种特殊的引用类型,它被设计为不可变对象。这意味着一旦创建了一个String对象,就不能更改它的值。这是由于String对象存储在常量池中,修改String对象实际上会创建一个新的对象,而原始对象...
在Java编程语言中,`String`类型的变量有一些特殊的性质,这主要源于它的不可变性(immutability)。不可变性意味着一旦一个`String`对象被创建,它的内容就不能被修改。下面我们将深入探讨这个问题,并通过给出的...
Java 中 String 类型的变量可以通过两种方式进行赋值:直接赋值和 new 关键字赋值。了解这两种方式的区别对于 Java 开发者来说非常重要。 直接赋值 直接赋值是指使用赋值语句将字符串直接赋值给 String 变量。例如...
### Java String对象的经典问题 #### 一、String 类与对象机制概述 在Java中,`String`类是一个非常重要的类,它提供了丰富的功能用于处理文本数据。`String`类是不可变的(immutable),这意味着一旦一个`String`...
- 确保处理XML时正确处理编码,避免乱码问题。 - 在修改XML内容时,务必确保找到的节点是存在的,否则会抛出异常。 - `XMLWriter`的输出格式可以根据需求调整,比如去掉空格和换行,或者使用紧凑格式。 DOM4J的...
在Java编程语言中,字符(char)类型是用于存储单个字符的数据类型。给指定字符赋值涉及到基本的变量声明和赋值操作。本篇文章将深入探讨如何在Java中为字符变量赋予不同的值,以及涉及的相关知识点。 1. **字符...
直接赋值方式,例如:String s1= "Welcome to Java"; 含义:字符串常量直接初始化一个String对 象,赋值给引用变量,s1指向字符串对象。 字符串变量中存储的是对象的地址。 例 1: String str = "Hello Java"; // ...
JAVA 连等赋值问题详解 在 Java 中,连等赋值是一种常见的赋值方式,但是,当我们使用连等赋值时,会出现一些意外的结果。本文将通过示例代码详细介绍 JAVA 连等赋值问题,并分析连等赋值的执行过程,从而帮助大家...
### Java反射机制详解:给指定字段赋值 在Java编程语言中,反射是一个非常强大的功能,它允许程序在运行时检查或“反映”自身,并直接操作内部属性(如类、方法和字段)。本文将深入探讨如何利用Java反射来访问并...
在深入探讨`string`类型及其成员函数之前,我们先简要回顾一下`string`的本质。在C++标准库中,`string`实际上是`basic_string`模板类的一个特化版本,用于处理`char`类型的字符序列。它提供了丰富的功能集,不仅...
在Java中,`String` 类被声明为 `final` 类型,这意味着它不能被继承。这主要是出于两个原因考虑:一是为了确保字符串对象的不可变性,从而可以在整个系统中安全地共享这些对象;二是为了优化性能,由于字符串常被...
为了解决这个问题,我们可以创建一个工具类`EnumUtil`,提供一个静态方法来反向根据枚举的描述值赋值: ```java public class EnumUtil { public static <T extends Enum<T>> T getByDescription(Class<T> enum...
### Java中String类的知识 #### 一、String 类概述与创建方式 在Java语言中,`String`类是用于表示不可变字符序列的核心类之一。它代表了一个字符串对象,一旦被初始化后,其内容不能被改变。这被称为不可变性...
### Java中String类详解 #### 引言 在Java编程语言中,`String`类扮演着至关重要的角色,它用于表示字符序列。本文档旨在深入探讨`String`类的特性和功能,帮助开发者更好地理解和应用这一核心类。 #### String类...
- `valueOf()`:将其他类型的数据转换为String类型。 - `substring(int beginIndex, int endIndex)`:截取字符串的一部分,创建新的字符串。 5. **null与空字符串的区别**: - `null`表示没有实例,例如`String ...