Milk is mostly water, but the part that isn’t water is a mix of fat, protein, and sugar — and the sugar is where the carbs come from. That sugar is called lactose, and it stays at roughly the same level no matter how much fat is in the milk.
A standard 8-ounce glass of milk contains about 12 grams of carbohydrates. That number barely moves whether you drink whole milk, 2%, 1%, or skim. The fat content changes, but the carbohydrate content does not. This surprises a lot of people who assume skim milk must be lower in carbs because it’s marketed as the “lighter” choice.
Here’s what many people don’t realize: the fat is what gets removed when milk is processed. The lactose stays. So a glass of skim milk and a glass of whole milk deliver almost identical carbs.
How Many Carbs In A Glass Of Milk By Fat Type?
Every fat type of cow’s milk lands within about 1 gram of the same carbohydrate count per 8-ounce cup. The USDA’s FoodData Central database lists the following values for plain, unflavored milk.
| Milk Type (8 oz / 1 cup) | Carbohydrates | Fat | Protein | Calories |
|---|---|---|---|---|
| Whole milk (3.25% fat) | ~12 g | ~8 g | ~8 g | ~150 |
| 2% reduced-fat milk | ~12 g | ~5 g | ~8 g | ~120 |
| 1% low-fat milk | ~12 g | ~2.5 g | ~8 g | ~100 |
| Skim / nonfat milk | ~12 g | ~0 g | ~8 g | ~80 |
These figures come from standard USDA nutritional data. The carbohydrate value is consistent across all four types. The calorie difference you see between whole and skim milk is almost entirely from fat, not carbs.
It’s worth understanding why. When dairy processors make reduced-fat milk, they spin the raw milk in a centrifuge. The fat, which is lighter, separates and rises. They skim it off. What remains — the water, protein, lactose, and minerals — is the same base liquid regardless of how much fat was removed.
Why Does Skim Milk Have the Same Carbs as Whole Milk?
Lactose is dissolved in the water portion of milk. It’s not attached to the fat. When you remove fat, you remove fat. The lactose stays in the water.
This is a basic fact of dairy chemistry that gets lost in marketing. Skim milk is sometimes positioned as a “diet” food, which leads people to assume it’s lower in everything. It’s lower in fat and calories. It is not lower in carbs.
The only way to reduce the carbs in a glass of milk is to reduce the lactose. That happens in two ways: lactose-free milk (where an enzyme called lactase breaks the lactose into simpler sugars, but the total carb count stays about the same) or by diluting milk with water.
Lactose-free milk is worth a closer look. The lactase enzyme splits lactose into glucose and galactose. The total grams of carbohydrate don’t change. What changes is the type of sugar. For someone with lactose intolerance, that split makes the milk digestible. For someone counting carbs, the number on the label is nearly identical.
Does Milk Type Affect Blood Sugar Differently?
The fat content of milk can influence how quickly the sugar enters your bloodstream. Fat slows digestion. Whole milk may produce a slightly slower rise in blood sugar compared to skim milk, because the fat delays gastric emptying.
That said, the difference is modest and not well characterized in large human trials. Some studies suggest a small effect on post-meal blood glucose when comparing full-fat and low-fat dairy, but the evidence is not strong enough to make firm claims about clinical significance.
What is well established: milk has a low glycemic index, typically in the range of about 30 to 40 depending on the type. That’s lower than white bread, white rice, or most breakfast cereals. The lactose in milk is digested relatively slowly compared to simple sugars like sucrose or glucose.
For people with diabetes who count carbohydrates, the total grams matter more than the fat type. A glass of milk is a glass of milk when it comes to carb counting. The fat content affects calories and satiety, not the carbohydrate total in any meaningful way.
How Do Plant-Based Milks Compare?
Plant-based milks vary widely in carbohydrate content. Some are much lower than cow’s milk. Some are higher. It depends entirely on the base ingredient and whether sugar is added.
- Unsweetened almond milk: typically 1–2 grams of carbs per cup
- Unsweetened soy milk: typically 3–5 grams of carbs per cup
- Oat milk (unsweetened): typically 7–16 grams of carbs per cup, depending on the brand and processing
- Rice milk: typically 20–25 grams of carbs per cup
- Sweetened vanilla almond milk: typically 3–5 grams of carbs per cup, but this varies by brand
Oat milk is the outlier here. The carbohydrates in oat milk come primarily from starch, not lactose. Starch breaks down into glucose, and oat milk tends to have a higher glycemic index than cow’s milk. Some research suggests oat milk can raise blood sugar more quickly than dairy milk, though the exact effect depends on the specific product and how it’s processed.
Rice milk is also high in carbs. It’s often used as a dairy alternative for people with multiple allergies, but from a carbohydrate standpoint, it’s closer to juice than to milk.
If you’re choosing a plant-based milk specifically to reduce carbs, unsweetened almond milk and unsweetened soy milk are the lowest options. But read the label. “Original” and “vanilla” versions often contain added sugar that can double or triple the carb count.
What About Chocolate Milk and Flavored Milk?
Flavored milks add sugar on top of the lactose already present. Chocolate milk typically contains 24–30 grams of carbohydrates per cup, roughly double that of plain milk. The exact amount varies by brand and whether it’s made with cocoa powder, syrup, or both.
Strawberry milk, vanilla milk, and other flavored varieties follow the same pattern. The base is milk with its natural ~12 grams of lactose. Then sugar or flavoring is added. The result is a drink with significantly more carbs than plain milk of any fat type.
This matters for anyone counting carbs. A glass of chocolate milk is not equivalent to a glass of plain milk, even if the fat content is the same.
Does the Type of Milk Matter for Carb Counting?
For carb counting purposes, the answer is straightforward: no. A cup of milk is about 12 grams of carbs regardless of fat content. If you’re managing diabetes, tracking macros, or following a low-carb diet, you can count any plain milk the same way.
What does change with fat type is the calorie content and the saturated fat. Whole milk has about 8 grams of fat per cup, roughly 5 of which are saturated. Skim milk has almost none. Current dietary guidelines in the US recommend limiting saturated fat to less than 10% of daily calories, which is one reason skim and low-fat milk have been widely recommended for decades.
That said, the evidence on whether low-fat dairy is actually better for heart health than full-fat dairy has become more mixed in recent years. Some observational studies have found no clear difference in cardiovascular outcomes between high-fat and low-fat dairy consumption. Other studies continue to support the saturated fat concern. The research is not settled.
What is settled is the carbohydrate content. If your question is about carbs, the fat type doesn’t matter. If your question is about calories or saturated fat, it does.
Does Lactose-Free Milk Have Fewer Carbs?
No. Lactose-free milk has essentially the same total carbohydrate content as regular milk. The lactase enzyme added during processing breaks lactose into glucose and galactose, but the total grams of sugar remain the same.
What changes is how your body handles it. People with lactose intolerance lack enough lactase in their small intestine to break down lactose themselves. When they drink regular milk, undigested lactose travels to the colon, where bacteria ferment it. That process causes bloating, gas, and diarrhea.
Lactose-free milk has the lactase already added. The sugar is pre-split. Your body absorbs the glucose and galactose without needing its own lactase. The carb count on the label is nearly identical to regular milk, but the digestive experience is different for someone who is lactose intolerant.
For carb counting, treat lactose-free milk the same as regular milk. The number is the same.
What About Goat Milk and Other Animal Milks?
Goat milk has a similar carbohydrate profile to cow’s milk, typically around 11–12 grams per cup. Sheep milk is slightly higher, around 13 grams per cup, because it has more solids overall. Buffalo milk is also higher in carbs, around 13–14 grams per cup.
The differences are small. If you’re counting carbs, any of these animal milks will land in roughly the same range as cow’s milk. The fat and protein content varies more than the carbohydrate content does.
Frequently Asked Questions
How many carbs are in a glass of whole milk?
A standard 8-ounce glass of whole milk contains about 12 grams of carbohydrates. This comes almost entirely from lactose, the natural sugar in milk.
Does skim milk have fewer carbs than whole milk?
No. Skim milk and whole milk have nearly identical carbohydrate content, both around 12 grams per 8-ounce cup. Removing fat does not remove lactose.
Is milk keto-friendly?
Plain milk is generally not considered keto-friendly because 12 grams of carbs per cup can quickly exceed a strict daily carb limit. Unsweetened almond milk, at 1–2 grams per cup, is a lower-carb option.
Does lactose-free milk have fewer carbs?
No. Lactose-free milk has about the same total carbohydrate content as regular milk. The lactase enzyme splits lactose into glucose and galactose, but the total grams stay nearly the same.

