首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对行进行分组,不将数字显示为科学记数法

对行进行分组,不将数字显示为科学记数法
EN

Stack Overflow用户
提问于 2017-09-08 21:08:36
回答 1查看 49关注 0票数 1

我正在使用PHP来做这件事。我的数据库中有一个表,其中一个值可以有两个半相似的记录,我希望将它们显示在HTML的同一行中。不,我不能在MySQL select中分组,因为这个表中只有2或3(最多4)列具有相同的值,而其他列具有不同的值(频率、计数)。为了更容易理解,我有一个表,其中的列位置可以容纳两个(或更多)相同位置的记录。有三列(示例),称为A,B和C,对于相同的位置具有相同的值(通常),以及四列(示例),D,E,F和G具有不同的值。

我想要什么?

在打印屏幕上的数据时,我想将具有相同位置的值分组(如果相同位置的A、B、C或其他列具有相同的值,则对此进行分组并仅显示一次),但在同一行中显示两个不同的值,一个在另一个之上。

我创建了一段时间,其中:

代码语言:javascript
复制
Select all DB data
While with all data to list (fetch_array);
    Select the FK data;
    Select the repeated data from table with a where condition in position;
    IF the select of repeated data result have more than two rows:
        X
    Else
        Display the individual rows.
End of while.

我在X中能做的就是用不同的颜色显示...我不能汉化合并具有相同值的这些行的方式...:S

为了更好的理解。

实际上是我的桌子:

代码语言:javascript
复制
---------------|--------------------|----------------|----------------
  Position     |   Variable         | Frequence      | Data
---------------|--------------------|----------------|----------------
  102230       | Information 1      | 0.0003         |   A
---------------|--------------------|----------------|----------------  
  102230       | Information 2      | 0.00743        |   A
---------------|--------------------|----------------|----------------
  103330       | Information x      | 0.002558       |   A
---------------|--------------------|----------------|----------------
 1033340       | Information y      | 0.00255        |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 4      | 0.0099553      |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 5      | 0.00722243     |   A
---------------|--------------------|----------------|----------------

我想要的:

代码语言:javascript
复制
---------------|--------------------|----------------|----------------
  Position     |   Variable         | Frequence      | Data
---------------|--------------------|----------------|----------------
  102230       | Information 1      | 0.0003         |   A
               | Information 2      | 0.00743        |   
---------------|--------------------|----------------|----------------
  103330       | Information x      | 0.002558       |   A
---------------|--------------------|----------------|----------------
 1033340       | Information y      | 0.00255        |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 4      | 0.0099553      |   A
               | Information 5      | 0.00722243     |   
---------------|--------------------|----------------|----------------

这是我的桌子的一个例子。我想合并重复位置的单元格,这些单元格具有相同的值(在本例中是A单元格和位置编号-但在我的真实脚本中,我有更多的列),并将这些值显示一次。以及具有不同值但来自相同合并位置的列,则这些值显示在同一行中,但在另一行的下方。

我还有另一个问题。我有一个带有频率的十进制列,但是我不能确定点后面的数字的大小,所以我在点后面放了一个很大的数据。

问题出在哪里?

该脚本打印的数字如下:

代码语言:javascript
复制
0.00000828700000000000
0.00216100000000000000

我想要的是:

代码语言:javascript
复制
0.000008287
0.002161

但是当我使用floatval()时,脚本返回:

代码语言:javascript
复制
8.287E-6
0.002161

我不想要科学记数法的回报。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-09-08 22:40:43

您可以使用rtrimsprintf来代替floatval()

代码语言:javascript
复制
$number = rtrim(sprintf('%.20f', "0.00000828700000000000"), "0");

上一行的输出为: 0.000008287

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46117278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档